package test;

import java.util.Date;

import org.json.JSONException;
import org.json.JSONObject;

public class ExtraiJSON {
	public static void main(String[] args) throws JSONException 
	{
		int numeroCampos = Integer.parseInt(args[0]);;
		int tamanhoHierarquia = Integer.parseInt(args[1]);;
		int tamanhoCampos = Integer.parseInt(args[2]);;
		
		/*int numeroCampos = 5;
		int tamanhoHierarquia = 500;
		int tamanhoCampos = 5;*/
		
		JSONObject msg = TesteJSON.getJSONObject(tamanhoCampos, numeroCampos, 
														tamanhoHierarquia);
		
		String jsonPayload = msg.toString();  
		
		long tempoInicial = new Date( ).getTime( );
		
		/*********************************************************************/
		try {
			msg = new JSONObject(jsonPayload);
		} catch (JSONException e1) {
			e1.printStackTrace();
		}
		//deglutindo a hierarquia do JSONObject
		int i = 1;
		String extracao = new String();
		while( msg.has( "obj" + i ) == true )
		{
			//System.out.println( "obj" + i + " = " + msg.getString( "obj" + i ) );
			extracao += "obj" + i + " = " + msg.getString( "obj" + i ) + "\n";
			msg = ( (JSONObject) msg.opt( "obj" + i ));
			i++;
		}//while
		
		i = 1;
		//deglutindo os campos do JSONObject
		while( msg.has( "campo" + i ) == true )
		{
			//System.out.println(  "campo" + i + " = " + msg.getString( "campo" + i ) );
			extracao += "campo" + i + " = " + msg.getString( "campo" + i ) +"\n";
			i++;
		}//while
		
		/*********************************************************************/
		long tempoFinal = new Date( ).getTime( );
		System.out.println( tempoFinal - tempoInicial );
	}
}
